package com.arara.model;

import java.sql.CallableStatement;
import java.sql.ResultSet;

import com.arara.controller.vo.Arquivo;
import com.arara.controller.vo.Bloqueio;

public class BloqueioDAO {
	
	private static CallableStatement callableStatement = null;
	private static ResultSet resultSet = null;
	
	public static void main(String[] args) {
		BD.conectar("jdbc:sqlserver://USERPC:1433;databasename=ARARA", 
				"sa", "123456", "com.microsoft.sqlserver.jdbc.SQLServerDriver");
		
		System.out.println(BloqueioDAO.getById(1));
	}
	
	public static boolean create (Arquivo arquivo){
		try {
			callableStatement = BD.getConnection().prepareCall("{CALL SP_U_ARA_BLOQUEIAARQUIVO(?, ?)}");
			callableStatement.setInt(1, arquivo.getCodigo());
			callableStatement.setInt(2, arquivo.getBloqueio().getAluno().getCodigo());
			callableStatement.executeUpdate();
			callableStatement.close();
			return true;
		} catch (Exception e) {
			System.err.println(e.getMessage());
			return false;
		}
	}
	
	public static Bloqueio getById(int codigo){
		Bloqueio bloqueio = null;
		try {
			callableStatement = BD.getConnection().prepareCall("{CALL SP_S_ARA_BLOQUEIO_CODIGO(?)}");
			callableStatement.setInt(1, codigo);
			resultSet = callableStatement.executeQuery();
			if(resultSet.next()){
				bloqueio = new Bloqueio();
				bloqueio.setCodigo(resultSet.getInt(1));
				bloqueio.setAluno(AlunoDAO.getById(resultSet.getInt(2)));
				bloqueio.setData(resultSet.getDate(3));
			}
			resultSet.close();
			callableStatement.close();
			return bloqueio;
		} catch (Exception e) {
			e.printStackTrace();
			System.err.println(e.getMessage());
			return bloqueio;
		}
	}
}
